<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>rest 参数</title>
</head>
<body>
    <script>
        // rest 参数是用来代替 arguments 的
        // function add(){
            // console.log(arguments); // 伪数组
        // }

        // function add(...args){
        //     // console.log(args);      // 值为实参数组
        //     console.log(args.reduce((prev, item) => prev + item));
        // }

        // add(1, 2, 3);
        // add(1, 2, 3, 4);
        // add(1, 2, 3, 4, 5);

        //针对多个参数    [1,2,3,4].splice(1, 2, 5, 6, 7, 8);
        function splice(index, num, ...args){
            console.log(index);
            console.log(num);
            console.log(args);
        }
        splice(1, 2, 5, 6, 7, 8);


        //需求 计算所有实参中的最大值
        function max(...args){
            //获取所有的实参
            //获取数组中第一个元素
            let n = args[0];
            //遍历
            for(let i=1;i<args.length;i++){
                //比较
                if(args[i] > n){
                    n = args[i];
                }
            }
            return n;
        }

        function max1(...args){
            //获取所有的实参
            return Math.max(...args);
        }

        function max2(...args){
            //获取所有的实参
            args.sort((a, b) => b - a);
            return args[0]
        }

        function max3(...args){
            //获取所有的实参
            return args.reduce((p, v) => {
                if(v > p) return v;
                else return p;
            })
        }

        let v = max3(1,2,3,100,200,0,-20,99,280,-40);

        console.log(v);
        
    </script>
</body>
</html>